Writeup doc on Index While Building#212
Conversation
Overall architecture of design for "Index While Building" in Bazel - MobileNativeFoundation/index-import#53 - bazelbuild/rules_swift#567 - bazelbuild/rules_swift#561
docs/index_while_building.md
Outdated
| ## Land index while building V2 - first pass | ||
|
|
||
| 1. Propose changes to `rules_swift` for compilation | ||
| 2. Implement an aspect to quickly pull remotely built indexes |
There was a problem hiding this comment.
In rules_ios, we currently look at BEP output to determine which indexstores were modified: https://github.com/bazel-ios/rules_ios/blob/master/tools/xcodeproj_shims/installers/indexstores.sh#L9
Introduced by this commit 609d9e5
There was a problem hiding this comment.
Initially we might able to use that that with the current rev of bazelbuild/rules_swift#567 without more effort 👍 .
Longer term the aspect can import indexes while we're waiting for deps to compile - VS waiting until the end. If we go with a BEP reader that is running during the build like in xcbuildkit we might be able tp piggy back on that https://github.com/jerrymarino/xcbuildkit/blob/master/Examples/BazelBuildService/main.swift#L19
| time. Adding "Index while building" to Bazel needs special consideration to | ||
| both preserve performance characteristics of the original architecture of a | ||
| global index and interoperate with Bazel's remote execution and caching. | ||
|
|
There was a problem hiding this comment.
It might be useful to spell out how this design saves so much bandwidth on the cache VS current and the special sauce in MobileNativeFoundation/index-import#53 to computing what units and records to cache.
LMK what you think of these edits.
Overall architecture of design for "Index While Building" in Bazel
swift.index_while_buildingbazelbuild/rules_swift#561